package com.zr.dao;

import java.util.List;
import java.util.Set;

import org.json.JSONArray;

import com.zr.model.Role;

/**
 * @Description
 * @author 郑少杰
 * @date 2017年9月13日 下午3:36:00
 * @version V1.3.1
 */

public interface RoleDao {
    /**
     * @Description 根据用户id得到角色信息
     * @author 郑少杰
     * @param userId 用户id
     * @return 返回角色信息
     */
    public Role getRoleByUserId(int userId);

    /**
     * 
     * @Description 根据父节点寻找其子功能并且子功能要在当前这个角色的功能列表里面
     * @author 郑少杰
     * @param parentId 父节点
     * @param fids 当前角色的功能列表
     * @return 返回的是功能列表组成的数组
     */
    public JSONArray getFuncsByParentId(int parentId, String fids);

    /**
     * @Description 得到当前用户的功能列表
     * @author 郑少杰
     * @param parentId 父节点
     * @param fids 当前用户的功能列表
     * @return
     */
    public JSONArray getCurrentUserFuncsByParentId(int parentId, String fids);

    /**
     * 
     * @Description 查询全部角色
     * @author 郑少杰
     * @return 角色信息列表
     */
    public List<Role> selectRoles();

    /**
     * 
     * @Description 得到全部角色
     * @author 郑少杰
     * @param page 第几页数据
     * @param pageSize 页数大小
     * @return 角色列表
     */
    public List<Role> getAllRoles(int page, int pageSize);

    /**
     * @Description 根据孩子节点找到父节点
     * @author 郑少杰
     * @param childrenId
     * @return
     */
    public Set<Integer> getParent(Integer childrenIds);

    public Set<Integer> getParents(Integer childrenIds);

    /**
     * 
     * @Description 插入角色
     * @author 郑少杰
     * @param name
     * @param fids
     * @return
     */
    public boolean insertRole(String name, String fids);

    /**
     * 
     * @Description 根据角色id搜索其功能
     * @author 郑少杰
     * @param roleId 角色id
     * @return 功能列表
     */
    public Role selectFids(int roleId);


}
